/*
	File:				IState.h
	Course:		SGP 1208
	Author:		Kori Po
	Purpose:	Abstract Base Class for game states
						Original by: dmonroe
*/

#pragma once

class IState
{
public:
	virtual ~IState( void )	= 0
	{/*Nothing to do here! :D */}
	
	// Pure virtual methods MUST be overriden by child classes
	virtual void Enter( void )	= 0;		// Load resources
	virtual void Exit( void )	= 0;		// Unload resources

	virtual bool Input( void )	= 0;		// Handle user input
	virtual void Update( float fElapsedTime )	= 0;		// Update game tokens
	virtual void Render( void )	= 0;		// Render game tokens
};

